(0) Obligation:
Runtime Complexity TRS:
The TRS R consists of the following rules:
0(#) → #
+(x, #) → x
+(#, x) → x
+(0(x), 0(y)) → 0(+(x, y))
+(0(x), 1(y)) → 1(+(x, y))
+(1(x), 0(y)) → 1(+(x, y))
+(1(x), 1(y)) → 0(+(+(x, y), 1(#)))
*(#, x) → #
*(0(x), y) → 0(*(x, y))
*(1(x), y) → +(0(*(x, y)), y)
sum(nil) → 0(#)
sum(cons(x, l)) → +(x, sum(l))
prod(nil) → 1(#)
prod(cons(x, l)) → *(x, prod(l))
Rewrite Strategy: FULL
(1) DecreasingLoopProof (EQUIVALENT transformation)
The following loop(s) give(s) rise to the lower bound Ω(2n):
The rewrite sequence
prod(cons(1(x13789_2), l)) →+ +(0(*(x13789_2, prod(l))), prod(l))
gives rise to a decreasing loop by considering the right hand sides subterm at position [0,0,1].
The pumping substitution is [l / cons(1(x13789_2), l)].
The result substitution is [ ].
The rewrite sequence
prod(cons(1(x13789_2), l)) →+ +(0(*(x13789_2, prod(l))), prod(l))
gives rise to a decreasing loop by considering the right hand sides subterm at position [1].
The pumping substitution is [l / cons(1(x13789_2), l)].
The result substitution is [ ].
(2) BOUNDS(2^n, INF)